<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <script>
        // 编程形式的区别
        //     1.面向过程
        //     2.面向对象

        // typeof 六种数据类型
        // number,string,boolean,undefined,object,function
        // typeof(123);   typeof 123;

        //      类型转换
        // 1.显式类型转换
        //   Number(mix)  undefined不能被转换成数字，结果是NaN
        //   parseInt(string,radix)  radix范围是2-36
        // 取整型，从数字位往后看，到非数字位截至
        // var demo = '10.asd7418952';
        // var num = parseInt(demo, 16); //把demo转化为16进制
        // console.log(typeof(num) + ':' + num);

        //   parseFolat(string)  //转换成正常的浮点数
        // console.log(parseFloat('100.2asd'));

        //   toString(radix)//转化成字符串  undefined,null不能使用toString方法
        // var demo = 123;
        // var num = demo.toString(8); //和string不太一样，以目标进制为基底，转化进制
        // console.log(typeof(num) + ':' + num);

        //   String(mix)//转化成字符串，写什么都可以
        //   Boolean()//试图把里面的东西转化为布尔值
        //   toFixed();//保留三位有效数字，并四舍五入


        // 隐式类型转换
        //   isNaN()  --> Number() 判断里面的东西是不是NaN
        // 把里面的东西拿出来跟Number进行比对

        //   ++/--   +/-(一元正负)   //转化为数字类型
        //   +  -->  String()
        //   -*/%  --> Number()

        //   &&||!  --> Boolean()
        //   <  >  <=  >=   -->Boolean()
        //   ==  !=   -->Boolean()

        // undefined == null   不大于0不小于0不等于0
        // NaN == NaN     false

        // 不发生类型转换
        // ===     !==
        // 未经声明的变量只有放在typeof()里面才不会报错


        // 练习
        // console.log(typeof(a)); //undefined  字符串类型
        // console.log(typeof(undefined)); //undefined  字符串类型
        // console.log(typeof(NaN)); //number
        // console.log(typeof(null)); //Object
        // var a = '123abc';
        // console.log(typeof(+a)); //number
        // console.log(typeof(!!a)); //Boolean
        // console.log(typeof(a + '')); //String
        // console.log(1 === 1); //true
        // console.log(NaN == NaN); //false
        // console.log(NaN == undefined); //falsse
        // console.log('11' + 11); //1111
        // console.log(1 === 1); //true
        // console.log(parseInt('123abc')); //123  数字类型
        // var num = 123123.345678;
        // console.log(num.toFixed(3)); //123123.346 字符串类型
        // console.log(typeof(typeof(a))); //string
    </script>
</body>

</html>